/*
 * 选择处理
 */


// 点击位置判断
function Target(position,targetType){
	switch(targetType){
	case "target":{
		// 指向目标
		return true;
		}
	case "self":{
		// 自身
		if(_board[position.x][position.y]==null)
			return false;
		if(_board[position.x][position.y].id == _GDNowChess.id){
			return true;
		}
		return false;
	}	
	case "chess":{
		// 棋子
		if(_board[position.x][position.y]!=null){
			return true;
			}
		return false;
		}
	case "blank":{
		// 空格
		if(_board[position.x][position.y]==null){
			return true;
			}
		return false;
		}
	case "ally":{
		// 盟友
		if(_board[position.x][position.y]==null){
			return false;
			}
		if(_board[position.x][position.y].team==0){
			return true;
			}
		return false;
	}	
	case "enemy":{
		// 敌人
		if(_board[position.x][position.y]==null){
			return false;
		}
		if(_board[position.x][position.y].team!=0){
			return true;
		}
		return false;
		}
	}
}

//效果目标判断
function SkillTarget(position,target,targetType){
	switch(targetType){
	case "target":{
		// 指向目标
		return true;
	}
	case "self":{
		// 自身
		if(_board[position.x][position.y]==null)
			return false;
		if(null != _board[target.x][target.y] && _board[position.x][position.y].id == _board[target.x][target.y].id){
			return true;
		}
		return false;
	}
	case "other":{
		// 他人
		if(null != _board[target.x][target.y] && _board[position.x][position.y].id == _board[target.x][target.y].id){
			return false;
		}
		return true;
	}
	case "chess":{
		// 棋子
		if(_board[target.x][target.y]!=null){
			return true;
		}
		return false;
	}
	case "blank":{
		// 空格
		if(_board[target.x][target.y]==null){
			return true;
		}
		return false;
	}
	case "ally":{
		// 盟友
		if(_board[position.x][position.y]==null||_board[target.x][target.y]==null){
			return false;
		}
		if(_board[position.x][position.y].team==_board[target.x][target.y].team){
			return true;
		}
		return false;
	}	
	case "enemy":{
		// 敌人
		if(_board[position.x][position.y]==null||_board[target.x][target.y]==null){
			return false;
		}
		if(_board[position.x][position.y].team!=_board[target.x][target.y].team){
			return true;
		}
		return false;
	}
	}
}

function SRange(from,position){
	var x = Math.abs(from.x - position.x);
	var y = Math.abs(from.y - position.y);
	return x+y;
}

// 范围判断
function Range(from,position,range){
	var x = Math.abs(from.x - position.x);
	var y = Math.abs(from.y - position.y);
	if(x + y <=range){
		return true;
	}
	return false;
}

// 环判断
function Ring(from,position,range){
	var x = Math.abs(from.x - position.x);
	var y = Math.abs(from.y - position.y);
	if(x + y == range)
		return true;
	return false;
}

function STargetToRange(from,target,range,type){
	var newTarget = new Array()
	for(var i in target){
		for(var j in _GDChessList){
			if(SkillTarget(CFindById(from).position,_GDChessList[j].position,type)&&Range(target[i],_GDChessList[j].position,range)){
				newTarget.push(_GDChessList[j].position);
			}
		}
	}
	return newTarget;
}

function SAllToRange(){
	var newTarget = new Array();
	for(var j in _GDChessList){
		newTarget.push(_GDChessList[j].position);
	}
	return newTarget;
}